var _ = require('lodash');


var fp = require('lodash/fp');


class Container{
  static of(value){
    return new Container(value)
  }
  constructor(value){
    this._value = value
  }
  map(fn){
    return Container.of(fn(this._value))
  }
}
class Maybe{
  static of(x){
    return new Maybe(x)
  }
  isNothing(){
    return this._value === null || this._value === undefined
  }
  constructor(x){
    this._value = x
  }
  map(fn){
    return this.isNothing()?this:Maybe.of(fn(this._value))
  }
}
module.exports = {Maybe,Container}
